來架個網站吧
經過依整天的需求訪談,可以說是燒掉不少腦細胞呀!不過訪談完成之後必須得得做整理,我相信經過一整晚的睡眠整理?前一天的需求應該都在腦袋瓜中整理的有理有序吧?但是當工程師拿到訪談的文件,有絕大部分的機率不會著手開發。這是為什呢?
想想看昨天的需求文件吧:
今天是9月10日,在世新大學有一位從美國來台灣就讀的大一年級的新生,同時他也是華僑說著一口流利的中文,但是不太認識中文字。無法將講義、同學的名字的文字念出發音及理解字詞的意思。同學希望有一個網站可以很順手的查詢字的意思。
但是在工程師的腦中有 接收資料、分析資料、拋出資料
,在前端工程的眼中只有如何呈現給使用者資訊
僅憑這一點敘述,會讓各個不同的工程師發會想像完成網站的一部分。以系統流程來說好了:後端工程師可能會會認為使用者(大學生)在網頁中輸入任何一個中文字,將使用者輸入的內容丟進資料庫查詢出結果,再將查詢結果資訊丟給使用者即可。在前端工程師的角度可能就是畫出一個可以給使用者輸入的文字方塊,丟給伺服器查詢,等到伺服器回傳資料再顯示給使用者。如果這時候沒有事先規範好前端、後端要如何完成查「查尋文字意思」的系統流程,有很大個機率會出現前端丟給後端資料,後端接收不到的狀況,反之亦然。我這邊只是舉個前後端的例子,在我的工作經驗中,有的情況是一條龍流程:需求訪談、需求分析、系統開發、系統測試、系統上線;也有情況是,多人一起完程一個階段任入。一個人在不同時期點會有不同的思考角度,例如:我在大學一直追求Java的程式如何寫到簡潔,到了現在是如何透過程式撰寫優美的SOP。更何況是兩人以上的合作模式。了減少不同思考角度間的溝通成本,因此在需求分析階段需要把下列事項定義清楚:
拿到需求敘述後,第一步事先依敘述畫出一個資訊流程:
畫完資訊流程後,會發現「資料庫」裡面的資料從哪裡來?裡面的資料誰要輸入?
所以這就是在需求訪談的結果沒有提及的隱藏需求,通常遇到這種需求會需要再向受訪者確認,更糟的是由分析師自行發揮想像力因應隱藏需求的設計方案。以下就是這次舉例隱藏需求的設計方案:
由志願者將中文「字」、「詞」的文意資訊,在網頁中輸入儲存至系統中。
在上述的需求敘述中,有一個明確的使用者:「不識字的人」